package com.gdssoft.pdaweb.service.impl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.gdssoft.core.util.DateUtil;
import com.gdssoft.pdaweb.model.CrmWorkOrder;
import com.gdssoft.pdaweb.model.am.PdaAmMeter;
import com.gdssoft.pdaweb.model.am.PdaAmMeterList;
import com.gdssoft.pdaweb.model.water.PdaWaterList;
import com.gdssoft.pdaweb.model.water.PdaWaterMeter;
import com.gdssoft.pdaweb.service.CrmService;
import synch.*;

public class CrmServiceImpl implements CrmService {

	private transient final Log logger = LogFactory.getLog(getClass());
	
	@Override
	public boolean syncWordOrderStatus(CrmWorkOrder crmWorkOrder) {
		return SynchCustomWorkOrderStatus.synchCustomWorkOrderStatus(
					crmWorkOrder.getActivityUID(),       // 活动编号，即：客服单号
					crmWorkOrder.getWorkStatus(),        // 状态
					crmWorkOrder.getPlannedCompletion(), // 完成时间
					crmWorkOrder.getComment());          // 备注
	}

	@Override
	public boolean pushWaterMeter(PdaWaterMeter pdaWaterMeter) {
		
		logger.debug("pushWaterMeter executed");
		
		return SynchAssetMessge.SynchAsset(
				pdaWaterMeter.getAparmentId(), // 房屋编号
				pdaWaterMeter.getAmId(),       // 水表号
				"水表", 
				pdaWaterMeter.getMeterKind(),  // 使用性质，“商业”、“住宅”、“临时”、“共用”、“事业单位”、“其他”
				!"1".equals(pdaWaterMeter.getIndoor()),   // 是否室内
				!"1".equals(pdaWaterMeter.getIsCharge()),  // 是否收费 
				pdaWaterMeter.getType(),  // 状态，值为“申请中”、“活动中”、“已报废”
				new Float(pdaWaterMeter.getTimesNum()).floatValue(),  // 倍率，值为整数 正常为1 
				pdaWaterMeter.getUpId()); // 父表编号
	}
	
	@Override
	public boolean pushWaterRecord(PdaWaterList pdaWaterList) {
		
		logger.debug("pushWaterRecord executed");
		
		return SynchAssetReading.synchAssetReading(
				pdaWaterList.getAmId(), 		    //表编号，系统唯一
				pdaWaterList.getRecordTime(), 		//抄表日期
				pdaWaterList.getDegree().intValue(), 			//本期读数
				pdaWaterList.getLastDegree().intValue(), 		//上期读数，上期抄表的读数
				pdaWaterList.getUsage().intValue(), 			//本期用量
				0, //上月用量暂时无法取得
				pdaWaterList.getFixedUsage().intValue(),         //上月修正量，无修正时为0
				pdaWaterList.getComments());		//备注信息，可为空字符串
	}

	@Override
	public boolean pushAmMeter(PdaAmMeter pdaAmMeter) {
		
		logger.debug("pushAmMeter executed");
		
		return SynchAssetMessge.SynchAsset(
				pdaAmMeter.getAparmentId(),  // 房屋编号
				pdaAmMeter.getAmId(),        // 水表号
				"电表", 
				pdaAmMeter.getMeterKind(),   // 使用性质，“商业”、“住宅”、“临时”、“共用”、“事业单位”、“其他”
				!"1".equals(pdaAmMeter.getIndoor()),   // 是否室内
				!"1".equals(pdaAmMeter.getIsCharge()),  // 是否收费 
				pdaAmMeter.getType(),   // 状态，值为“申请中”、“活动中”、“已报废”
				new Float(pdaAmMeter.getTimesNum()).floatValue(),   // 倍率，值为整数 正常为1 
				pdaAmMeter.getUpId());  // 父表编号
	}

	@Override
	public boolean pushAmRecord(PdaAmMeterList pdaAmMeterList) {
		
		logger.debug("pushAmRecord executed");
		
		return SynchAssetReading.synchAssetReading(
				pdaAmMeterList.getAmId(), 		    //表编号，系统唯一
				pdaAmMeterList.getRecordtime(),			//抄表日期 
				pdaAmMeterList.getDegree().intValue(), 			//本期读数
				pdaAmMeterList.getLastDegree().intValue(), 		//上期读数，上期抄表的读数
				pdaAmMeterList.getUsage().intValue(), 			//本期用量
				0, //上月用量暂时无法取得
				pdaAmMeterList.getFixedUsage().intValue(),         //上月修正量，无修正时为0
				pdaAmMeterList.getComments());		//备注信息，可为空字符串
	}
	
}
